package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.pojo.FormTitlePoJo;
import com.xbongbong.paas.pojo.SummaryDataPoJo;
import com.xbongbong.pro.enums.SaasMarkEnum;
import com.xbongbong.paas.field.LinkListPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/8/14 14:54
 * @desrcption: 表单返回数据对象
 */
@Getter
@Setter
@ToString
public class FormEntityAddDTO implements Serializable {


    private static final long serialVersionUID = 4632387601926863715L;
    /**
     * 主键
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 应用id
     */
    private Long appId;
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 表单名称
     */
    private String name;
    /**
     * 是否流程表单，1是，0否
     */
    private Integer isProcessForm;
    /**
     * 表单验证规则
     */
    private String verifyRule;
    /**
     * 不可见字段赋值，1 保持原值，2 空值，3 始终重新计算
     */
    private Integer disableFieldAssign;
    /**
     * 前端缓存，1 启用，0 禁用
     */
    private Integer frontCache;
    /**
     * 数据标题类型，1第一个字段，2自定义标题
     */
    private Integer titleType;
    /**
     * 自定义标题，具体指定格式
     */
    private List<FormTitlePoJo> customTitle;
    /**
     * 自定义摘要，具体指定格式, 用于手机端列表页显示
     */
    private List<SummaryDataPoJo> summaryEntity;

    /**
     * 标签列表，最多5个字段
     */
    private List<SummaryDataPoJo> labels;

    /**
     * 关联列表设置
     */
    private List<LinkListPojo> associationList;
    /**
     * 业务规则
     */
    private String businessRules;

    /**
     * 创建者id
     */
    private String creatorId;
    /**
     * 创建时间时间戳
     */
    private Long addTime;
    /**
     * 更新时间时间戳
     */
    private Long updateTime;

    /**
     * 协同人权限
     */
    private CoOpPermsAddDTO coOpPerms;

    /**
     * saas标识
     */
    private Integer saasMark;

    /**
     * 业务类型
     */
    private Integer businessType;

    /**
     * 费用
     */
    private List<Long> surcharge;

    /**
     * 是否开启业绩分配
     */
    private Integer openDistribution;
    /**
     * 销售价格关联，用于出库单；1：开启；0：不开启
     */
    private Integer priceAssociation;

    /**
     * 是否启用
     */
    private Integer enable;

    private Integer distributorMark;

    /**
     * 初始化出的经销商模板需要默认放在第一个
     */
    private Integer sort;

    public FormEntityAddDTO(){
        isProcessForm = 0;
        titleType = 1;
        verifyRule = "";
        disableFieldAssign = 2;
        frontCache = 0;
        coOpPerms = new CoOpPermsAddDTO();
        summaryEntity = new ArrayList<>();
        labels = new ArrayList<>();
        associationList = new ArrayList<>();
        customTitle = new ArrayList<>();
        titleType = 1;
        saasMark = SaasMarkEnum.PAAS.getCode();
        businessType = 0;
        enable = 1;
        businessRules = "0";
        surcharge = new ArrayList<>();
        priceAssociation = 0;
        openDistribution = 0;
        distributorMark = 0;
    }
}
